Applications executing on a computing device may rely upon processing resources in the computing device such as, for example, the operating system kernel to interact with information sources that reside on a network. Kernels are processing engines that form a bridge between the applications and the actual data processing done at the hardware level in a computing system. In this role, the operating system kernel may interact with hardware-level resources such as network interface circuitry to cause information to be transmitted to, or received from, network resources. While allowing for network interaction, performance can be greatly affected by the activity level of the operating system kernel. Communications received by the network interface circuitry may be delayed in instances where the operating system kernel is busy with other tasks. As a result, other methods have been developed for conveying network information that do not involve the main processing resources of the computing device. Remote Direct Memory Access (RDMA) allows a networked device to place information directly into the memory of another networked device without involving main processing resources (e.g., the operating system kernel). While RDMA allows for substantially increased network throughput with lower latency, some issues still exist. RDMA may operate by, for example, taking information from a memory buffer being used by an application and transferring the information directly to a memory buffer accessible to the network interface circuitry, which may then transmit the information to other devices on the network. However, the operating system kernel may move the contents of the application buffer to virtual memory without warning, and so application memory buffer must first be registered to prevent the contents from being moved during the RDMA transaction, and then deregistered to free up the memory space for use by other system resources. The registration/deregistration of the application memory buffer introduces latency into RDMA that may slow down the speed at which information is transferred, and thus, may negatively impact communication performance.
Although the following Detailed Description will proceed with reference being made to illustrative embodiments, many alternatives, modifications and variations thereof will be apparent to those skilled in the art.